<!DOCTYPE html><html lang="zh-CN" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>elbadaernU - A blog of HK560</title><meta name="author" content="HK560"><meta name="copyright" content="HK560"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta name="description" content="&quot;与光同尘&quot;C++QT爱好者|音乐痴|PCDIYer喜欢研究兴趣项目背后的技术努力学习中！">
<meta property="og:type" content="website">
<meta property="og:title" content="elbadaernU">
<meta property="og:url" content="https://blog.hk560.top/index.html">
<meta property="og:site_name" content="elbadaernU">
<meta property="og:description" content="&quot;与光同尘&quot;C++QT爱好者|音乐痴|PCDIYer喜欢研究兴趣项目背后的技术努力学习中！">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/avatar_hk560.jpg">
<meta property="article:author" content="HK560">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/avatar_hk560.jpg"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/blogLogo.jpg"><link rel="canonical" href="https://blog.hk560.top/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Saira+Semi+Condensed:wght@100&amp;display=swap" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"search.xml","languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":200},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#121212","position":"top-center"},
  source: {
    jQuery: 'https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js',
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css'
    },
    fancybox: {
      js: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js',
      css: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css'
    }
  },
  isPhotoFigcaption: true,
  islazyload: false,
  isanchor: true
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: 'elbadaernU',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2022-03-17 20:19:07'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
          const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
          const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
          const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified

          if (t === undefined) {
            if (isLightMode) activateLightMode()
            else if (isDarkMode) activateDarkMode()
            else if (isNotSpecified || hasNoSupport) {
              const now = new Date()
              const hour = now.getHours()
              const isNight = hour <= 6 || hour >= 18
              isNight ? activateDarkMode() : activateLightMode()
            }
            window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
              if (saveToLocal.get('theme') === undefined) {
                e.matches ? activateDarkMode() : activateLightMode()
              }
            })
          } else if (t === 'light') activateLightMode()
          else activateDarkMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if (GLOBAL_CONFIG_SITE.isHome && /iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    document.addEventListener('pjax:complete', detectApple)})(window)</script><meta name="generator" content="Hexo 5.4.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/avatar_hk560.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">文章</div><div class="length-num">17</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">标签</div><div class="length-num">17</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">分类</div><div class="length-num">3</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 链接</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-heart"></i><span> 关于</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于本站</span></a></li><li><a class="site-page child" href="/about/HK560/"><i class="fa-fw fas fa-heart"></i><span> ？？？</span></a></li></ul></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_avg_ac9_8.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">elbadaernU</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 链接</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-heart"></i><span> 关于</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于本站</span></a></li><li><a class="site-page child" href="/about/HK560/"><i class="fa-fw fas fa-heart"></i><span> ？？？</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">elbadaernU</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/hk560" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:lan2496846801@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="tencent://message/?uin=2496846801&amp;Site=&amp;Menu=yes" target="_blank" title="QQ"><i class="fab fa-qq"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left_radius"><a href="/ttf2AnimatedSkintutorial/" title="《泰坦陨落2》动态皮肤（VTF）MOD制作教程">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Snipaste_2022-03-16_19-14-25.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="《泰坦陨落2》动态皮肤（VTF）MOD制作教程"></a></div><div class="recent-post-info"><a class="article-title" href="/ttf2AnimatedSkintutorial/" title="《泰坦陨落2》动态皮肤（VTF）MOD制作教程">《泰坦陨落2》动态皮肤（VTF）MOD制作教程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-02-12T11:56:20.000Z" title="发表于 2022-02-12 19:56:20">2022-02-12</time></span></div><div class="content">前言泰坦陨落2是由重生娱乐制作组开发一款快节奏FPS游戏，游戏由其畅快的高机动性枪战体验和独有的泰坦机甲而广受玩家好评。
本文是一篇关于如何为泰坦陨落2制作动态武器皮肤的教程。教程内容全部由本人HK560编写，感谢各位热爱泰坦陨落的玩家支持。
本教程为武器动态皮肤制作教程，其他泰坦皮肤或铁驭皮肤可参考本教程和其他文档进行类推，无论是是否动态静态的。
注意：泰坦陨落2皮肤制作有两种方式：一种是VTF方式，一种是DDS方式
简单描述差异: VTF方式能实现动态效果，可以打包为北极星MOD方便北极星启用禁用，缺点是无法使用法线贴图AO贴图等只能使用基础颜色贴图。而DDS方式只能是静态贴图，但是能够使用游戏所支持的法线贴图AO贴图发光贴图等，能再现游戏内贴图效果。两种方式打包制作复杂度类似。
本文教程是动态皮肤教程，所以是VTF方式制作皮肤。
转载请标明原作者和原文章地址
制作动态皮肤的大体流程流程简述：

获取武器模型文件
获取武器模型对应贴图文件
处理模型文件
根据获得到的资源文件进行基础皮肤制作
将基础皮肤处理为动态皮肤
压缩动态皮肤文件
打包导入皮肤文件

动态皮肤原理：动态皮肤的贴图 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/NorthStarCN-Index/" title="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Avg_bg_21_G8_cammunibase.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架"></a></div><div class="recent-post-info"><a class="article-title" href="/NorthStarCN-Index/" title="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架">【NorthStarCN】 一个适用于泰坦陨落2的MOD框架</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-12-29T09:24:49.000Z" title="发表于 2021-12-29 17:24:49">2021-12-29</time></span></div><div class="content">什么是 NorthStarCN 北极星CN ？NorthStar 是一个MOD和MOD框架，它允许玩家用户使用脚本架设他们自己的泰坦陨落2客制化服务器并自定义内容,也能够架设 vanilla 内容。对于普通玩家而言，使用NorthStar能够游玩由NorthStar架设的服务器房间，不经过官方服务器。
NorthStarCN 则是基于原版NorthStar，进行本地化修改，修改了MasterServer并进行了部分汉化，使得在中国大陆环境下能更流畅使用NorthStar框架并进行多人联机，并提供相关可使用的MOD。该项目由国内泰坦陨落粉丝玩家维护。
NorthStar 和 NorthStarCN 都属于早期项目，仍有许多地方需要完善，如果您遇到任何问题欢迎积极交流。
我们由衷感谢感激原作者为泰坦陨落2社区贡献和付出，本项目遵守MIT协议。
快速开始
首先你需要下载NorthStarCN的客户端并安装，请访问发布仓库下载
将下载下来的客户端压缩包的所有文件解压到泰坦陨落2游戏的根目录
启动并登陆Origin完毕后，点击运行游戏根目录下的NorthstarLauncher.exe即可启动
 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/CleanCodeReadingNotes/" title="《代码整洁之道》阅读笔记">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_bg_0_am_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="《代码整洁之道》阅读笔记"></a></div><div class="recent-post-info"><a class="article-title" href="/CleanCodeReadingNotes/" title="《代码整洁之道》阅读笔记">《代码整洁之道》阅读笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-12-07T11:49:32.000Z" title="发表于 2021-12-07 19:49:32">2021-12-07</time></span></div><div class="content">代码整洁？
代码永远存在，无论软件行业发展，代码永远是各种工具的基石地基，没有代码这些东西工具也不会存在，无代码运动就是个笑话
糟糕的代码会给项目发展逐渐显现弊端，混乱增加，生产力下降，最后趋于零，这是非常可怕的。
花时间保持代码整洁不但有关效率，还有关生存。整洁你的代码，保护你的饭碗。
多数经理想要好代码，他们想要知道代码实情，所以不应当羞于高数项目进展实情
写出整洁的代码是困难的，需要技巧和不断练习
整洁代码读起来是愉悦的，糟糕的代码会引发混乱，别人修改往往会越来越乱
代码应当讲述事实，不引人猜测，便于其他人增加修改
如何整洁你的代码，不如说是如何在意你的代码
不要重复代码，只做一件事，表达力，小规模抽象

名字要起的有意义
变量，函数，类的名字就应该能解释大部分的东西，备注都是额外的，能做到不需要额外备注就是最好的
避免取容易引发歧义猜测的名字，比如一些专有名字，大家耳熟能详但在代码中缺失另一种含义的名字
accountList 除非你是真的用List类才这样写。否则还是写成AccountGroup吧
太过相似的变量名也不合适，应该做容易区分的，尤其是“I”“l” 还有“O”“0 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/HowDoesHexoBlogUseLive2D/" title="在Hexo博客上使用自定义Live2D">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_avg_7_1_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="在Hexo博客上使用自定义Live2D"></a></div><div class="recent-post-info"><a class="article-title" href="/HowDoesHexoBlogUseLive2D/" title="在Hexo博客上使用自定义Live2D">在Hexo博客上使用自定义Live2D</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-12-03T03:02:42.000Z" title="发表于 2021-12-03 11:02:42">2021-12-03</time></span></div><div class="content">放在前面之前看到有很多人用hexo博客左下角右下角总有个live2d，自己也稍微研究了一下，发现用起来还是蛮简单的，作者提供了几个live2d模型的包，但其实我们是可以使用其他的自定义的live2d模型
安装使用live2d，并配置自定义live2d模型
首先安装 hexo-helper-live2d 仓库链接 官方文档写了怎么安装配置了，按照步骤来即可。不同hexo主题应该是不受影响的。

配置模型,官方文档里写了需要在博客根目录创建一个live2d_models模型文件夹，然后你的模型文件要放在一个文件夹内，再把这个文件夹放到live2d_models文件夹下面文件目录示例：

使用自定义live2d模型，首先确保你的模型文件是旧版的live2d，新版好像是不兼容的。然后将你的模型json文件改名为XXX.model.json,XXX为模型名字，你可以自己设置自己想要的名字。然后将整个模型文件夹的名字也改为XXX 把这个文件夹放到live2d_models。 要使用这个文件夹就在_config.yml的live2d配置 live2d.model.use 配置为XXX ,就如下图一样 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/bf2042downloadArtbookOST/" title="战地风云2042艺术设定集原生轨音乐领取下载链接">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Snipaste_2021-11-27_20-13-08.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="战地风云2042艺术设定集原生轨音乐领取下载链接"></a></div><div class="recent-post-info"><a class="article-title" href="/bf2042downloadArtbookOST/" title="战地风云2042艺术设定集原生轨音乐领取下载链接">战地风云2042艺术设定集原生轨音乐领取下载链接</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-11-27T12:11:13.000Z" title="发表于 2021-11-27 20:11:13">2021-11-27</time></span></div><div class="content">前言说起来我其实也算是个战地系列粉丝了，bf3开始玩的，一直很喜欢运河，这次运河回来了，就没忍住买了个终极版。不过这个终极版说送设定集和OST，找了好久没找到，最后终于在reddit上看到有人发了链接
BF2042设定集和OST领取方法1.进入领取地址2.点击sign登陆ea账号
3.下载
应该是只有终极版玩家才能领取？不过我下面附上了能直接下载的官方链接
直接下载链接
直链下载设定集
直链下载OST


希望2042慢慢完善，对得起大家的期待
</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/GaforTSP_inQT/" title="QT实现使用遗传算法解决旅行商TSP问题">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_bg_lungmencommand_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="QT实现使用遗传算法解决旅行商TSP问题"></a></div><div class="recent-post-info"><a class="article-title" href="/GaforTSP_inQT/" title="QT实现使用遗传算法解决旅行商TSP问题">QT实现使用遗传算法解决旅行商TSP问题</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-11-26T15:13:50.000Z" title="发表于 2021-11-26 23:13:50">2021-11-26</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/QT%E9%A1%B9%E7%9B%AE/">QT项目</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E4%B8%93%E4%B8%9A%E5%AD%A6%E4%B9%A0%E5%AE%9E%E9%AA%8C/">专业学习实验</a></span></div><div class="content">放在前面
来自广州大学人工智能实验
仅记录代码实现过程思路,不对涉及知识过多讲解遗传算法解决旅行商问题一 对旅行商问题进行编码旅行商问题,目标是求一个走过所有目标地点尽量最短的路径。我们可以将这个路径视为一个数组,数组中的每个元素就是经过的城市的编号,元素的排列顺序就是走过地点的顺序。以遗传算法的视角来看,该数组(路径)中的元素相当于基因,但是这个基因并不重复,因为旅行商问题不会重复走过同一个地点。所以我们可以将每一条路径视为一个数组,数组中的元素就是地点。种群由这些一条条不同的数组(路径)组成。

在QT中可以用以下这种方式存储路径,元素int类型可以是地点的编号
1QVector&lt;int&gt; path;//路径
不过我们还是得创建一个location类,将地点信息(名称,坐标等)存储一下,方便后面操作
12345678910111213141516171819202122//location.h#ifndef LOCATION_H#define LOCATION_H#include &lt;QObject&gt;#include&lt;QtDebug&gt;class l ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/FixedvscodeterminalScriptForbiddenToRun/" title="解决vscode终端执行hexo命令提示无法加载文件因为在此系统上禁止运行脚本">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_avg_5_8_sky_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="解决vscode终端执行hexo命令提示无法加载文件因为在此系统上禁止运行脚本"></a></div><div class="recent-post-info"><a class="article-title" href="/FixedvscodeterminalScriptForbiddenToRun/" title="解决vscode终端执行hexo命令提示无法加载文件因为在此系统上禁止运行脚本">解决vscode终端执行hexo命令提示无法加载文件因为在此系统上禁止运行脚本</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-11-26T01:35:30.000Z" title="发表于 2021-11-26 09:35:30">2021-11-26</time></span></div><div class="content">问题今天在用vscode的终端创建hexo文章时候,执行hexo new 时候得到如下错误提示
原因原因已经告诉我们了,因为当前系统上的powershell策略不允许我们执行脚本
解决使用管理员身份打开powershell输入命令 get-ExecutionPolicy
12PS C:\WINDOWS\system32&gt; get-ExecutionPolicyRestricted
返回结果为Restricted 微软doc说明如下:

RestrictedThe default execution policy for Windows client computers.Permits individual commands, but does not allow scripts.Prevents running of all script files, including formatting and configuration files (.ps1xml), module script files (.psm1), and PowerShell profiles (.ps1) ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/MachineLearningExperimentNaiveBayesianLogisticRegressionProcessingadultDataset/" title="机器学习实验朴素贝叶斯逻辑回归处理adult数据集(附代码)">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_bg_lungmencommand_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="机器学习实验朴素贝叶斯逻辑回归处理adult数据集(附代码)"></a></div><div class="recent-post-info"><a class="article-title" href="/MachineLearningExperimentNaiveBayesianLogisticRegressionProcessingadultDataset/" title="机器学习实验朴素贝叶斯逻辑回归处理adult数据集(附代码)">机器学习实验朴素贝叶斯逻辑回归处理adult数据集(附代码)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-11-26T01:34:24.000Z" title="发表于 2021-11-26 09:34:24">2021-11-26</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E4%B8%93%E4%B8%9A%E5%AD%A6%E4%B9%A0%E5%AE%9E%E9%AA%8C/">专业学习实验</a></span></div><div class="content">放在最前面
题目来自广州大学机器学习实验
本文以解决数据集处理问题为最高目标，不会对涉及到的知识过多介绍，会写出问题解决思路方式实验题目
基于Adult数据集，完成关于收入是否大于50K的逻辑回归分类、朴素贝叶斯模型训练、测试与评估。


1 准备数据集并认识数据  下载Adult数据集  http://archive.ics.uci.edu/ml/datasets/Adult  了解数据集各个维度特征及预测值的含义
2 探索数据并预处理数据  观察数据集各个维度特征及预测值的数值类型与分布  预处理各维度特征
3 训练模型  编程实现训练数据集上逻辑回归模型的梯度下降参数求解、朴素贝叶斯参数统计
4 测试和评估模型   在测试数据集上计算所训练模型的准确率、AUC等指标

实验内容及步骤数据集下载处理http://archive.ics.uci.edu/ml/datasets/Adult

下载后用excel打开文件，发现没有index没有列名，只好手动处理添加一下，处理好的文件我会放在源码文件夹里。
使用pandas读取文件,简单处理一下
1234# 读取数据,预处理df = pd ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/Piexl4Tools/" title="Google Pixel4 玩机教程资源整理收集">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_avg_11_2_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Google Pixel4 玩机教程资源整理收集"></a></div><div class="recent-post-info"><a class="article-title" href="/Piexl4Tools/" title="Google Pixel4 玩机教程资源整理收集">Google Pixel4 玩机教程资源整理收集</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-10-29T11:59:37.000Z" title="发表于 2021-10-29 19:59:37">2021-10-29</time></span></div><div class="content">最近购入一台Pixel4，非常喜欢这个手机，在玩机过程中遇到了不少问题，因此建了个仓库收集整理了Pixel4相关资源教程，便于大家方便合理舒适地在国内使用Pixel4.目前已在Github建设好仓库，慢慢更新完善咯~~
仓库链接地址仓库说明
本仓库搜集整理 2019年发布的Google Pixel 4 手机相关的工具组件模块教程等资源。便于在中国大陆更方便合理地使用Pixel4。
本文大部分资源教程为O版服务。请各位机主了解清楚自己的Pixel4是什么版本!
注意仓库收录的资源适用于Pixel4,但不完全保证Pixel4XL也能够使用(虽然大体都可以互用的,有时候Pixel4XL的教程资源也能给Pixel4用)
大部分资源和教程来源于网络共享,本仓库仅作为指路导航
仓库仍在逐步建设更新完善


大致内容目录放在前面：
我想要拥有/拥有了一台 Pixel 4,我应该做些什么?
关于Pixel4你可能想知道的(官网，参数，故事，特性）

查询我的 Pixel 4 是什么版本(查询IMEI)


我是非运营商版本的O版(即能解锁BL)Pixel4,我想要获得更好的体验


[【教程搜集】(解 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/configurationArduinoEsp8266/" title="为ESP8266安装与配置ArduinoIDE">     <img class="post_bg" src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Avg_bg_bg_23_G08.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="为ESP8266安装与配置ArduinoIDE"></a></div><div class="recent-post-info"><a class="article-title" href="/configurationArduinoEsp8266/" title="为ESP8266安装与配置ArduinoIDE">为ESP8266安装与配置ArduinoIDE</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2021-09-06T08:41:40.000Z" title="发表于 2021-09-06 16:41:40">2021-09-06</time></span></div><div class="content">Arduino IDE 安装 与 配置ESP8266开发环境

笔者因为正在开发的一个项目需要用到ArduinoIDE,所以便顺便写下一个文章记录安装和配置过程。


ArduinoIDE下载与安装官方网站软件下载地址:https://www.arduino.cc/en/software选择适合自己的版本下载,本文章以windows安装版本示例

进入安装界面,同意协议,选择路径,选项默认下一步即可

安装过程中会弹出提示安装设备驱动,都点击安装即可
提示安装完成后即完成安装

为esp8266配置启动Arduino IDE
弹出主界面后点击左上角的文件-首选项

如图在箭头指向的框内输入
1http:&#x2F;&#x2F;arduino.esp8266.com&#x2F;stable&#x2F;package_esp8266com_index.json


可以在 网络 分页设置代理。因为服务器在国外,国内网络不一定能连接的上,推荐设置代理完成后点“好”保存

打开 开发板管理器搜索esp8266 找到对应的平台版本 安装等待下方的进度条读完即安装完成,如果超时或者安装失败请检查网 ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/avatar_hk560.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">HK560</div><div class="author-info__description">"与光同尘"<br>C++QT爱好者|音乐痴|PCDIYer<br>喜欢研究兴趣项目背后的技术<br>努力学习中！</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">17</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">标签</div><div class="length-num">17</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">分类</div><div class="length-num">3</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/hk560"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/hk560" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:lan2496846801@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="tencent://message/?uin=2496846801&amp;Site=&amp;Menu=yes" target="_blank" title="QQ"><i class="fab fa-qq"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>公告</span></div><div class="announcement_content">无论如何，欢迎来到我的博客。</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/ttf2AnimatedSkintutorial/" title="《泰坦陨落2》动态皮肤（VTF）MOD制作教程"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Snipaste_2022-03-16_19-14-25.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="《泰坦陨落2》动态皮肤（VTF）MOD制作教程"/></a><div class="content"><a class="title" href="/ttf2AnimatedSkintutorial/" title="《泰坦陨落2》动态皮肤（VTF）MOD制作教程">《泰坦陨落2》动态皮肤（VTF）MOD制作教程</a><time datetime="2022-02-12T11:56:20.000Z" title="发表于 2022-02-12 19:56:20">2022-02-12</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/NorthStarCN-Index/" title="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Avg_bg_21_G8_cammunibase.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架"/></a><div class="content"><a class="title" href="/NorthStarCN-Index/" title="【NorthStarCN】 一个适用于泰坦陨落2的MOD框架">【NorthStarCN】 一个适用于泰坦陨落2的MOD框架</a><time datetime="2021-12-29T09:24:49.000Z" title="发表于 2021-12-29 17:24:49">2021-12-29</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/CleanCodeReadingNotes/" title="《代码整洁之道》阅读笔记"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_bg_0_am_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="《代码整洁之道》阅读笔记"/></a><div class="content"><a class="title" href="/CleanCodeReadingNotes/" title="《代码整洁之道》阅读笔记">《代码整洁之道》阅读笔记</a><time datetime="2021-12-07T11:49:32.000Z" title="发表于 2021-12-07 19:49:32">2021-12-07</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/HowDoesHexoBlogUseLive2D/" title="在Hexo博客上使用自定义Live2D"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub/res/pic/Avg_avg_7_1_压缩.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="在Hexo博客上使用自定义Live2D"/></a><div class="content"><a class="title" href="/HowDoesHexoBlogUseLive2D/" title="在Hexo博客上使用自定义Live2D">在Hexo博客上使用自定义Live2D</a><time datetime="2021-12-03T03:02:42.000Z" title="发表于 2021-12-03 11:02:42">2021-12-03</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/bf2042downloadArtbookOST/" title="战地风云2042艺术设定集原生轨音乐领取下载链接"><img src="https://cdn.jsdelivr.net/gh/HK560/MyPicHub@master/res/pic/Snipaste_2021-11-27_20-13-08.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="战地风云2042艺术设定集原生轨音乐领取下载链接"/></a><div class="content"><a class="title" href="/bf2042downloadArtbookOST/" title="战地风云2042艺术设定集原生轨音乐领取下载链接">战地风云2042艺术设定集原生轨音乐领取下载链接</a><time datetime="2021-11-27T12:11:13.000Z" title="发表于 2021-11-27 20:11:13">2021-11-27</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
            <i class="fas fa-folder-open"></i>
            <span>分类</span>
            
            </div>
            <ul class="card-category-list" id="aside-cat-list">
            <li class="card-category-list-item "><a class="card-category-list-link" href="/categories/QT%E9%A1%B9%E7%9B%AE/"><span class="card-category-list-name">QT项目</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E4%B8%93%E4%B8%9A%E5%AD%A6%E4%B9%A0%E5%AE%9E%E9%AA%8C/"><span class="card-category-list-name">专业学习实验</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E4%B8%AA%E4%BA%BA%E9%A1%B9%E7%9B%AE/"><span class="card-category-list-name">个人项目</span><span class="card-category-list-count">1</span></a></li>
            </ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/C/" style="font-size: 1.1em; color: #999">C++</a> <a href="/tags/ESP8266/" style="font-size: 1.1em; color: #999">ESP8266</a> <a href="/tags/QT/" style="font-size: 1.1em; color: #999">QT</a> <a href="/tags/hexo/" style="font-size: 1.1em; color: #999">hexo</a> <a href="/tags/python/" style="font-size: 1.1em; color: #999">python</a> <a href="/tags/%E5%88%86%E4%BA%AB/" style="font-size: 1.1em; color: #999">分享</a> <a href="/tags/%E5%8D%9A%E5%AE%A2/" style="font-size: 1.1em; color: #999">博客</a> <a href="/tags/%E5%AD%A6%E4%B9%A0/" style="font-size: 1.37em; color: #99a4b2">学习</a> <a href="/tags/%E6%95%99%E7%A8%8B/" style="font-size: 1.5em; color: #99a9bf">教程</a> <a href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" style="font-size: 1.1em; color: #999">机器学习</a> <a href="/tags/%E6%B8%B8%E6%88%8F/" style="font-size: 1.23em; color: #999ea6">游戏</a> <a href="/tags/%E7%94%B5%E5%AD%90%E4%BA%A7%E5%93%81/" style="font-size: 1.23em; color: #999ea6">电子产品</a> <a href="/tags/%E8%B5%84%E6%BA%90/" style="font-size: 1.23em; color: #999ea6">资源</a> <a href="/tags/%E8%BD%AF%E4%BB%B6/" style="font-size: 1.1em; color: #999">软件</a> <a href="/tags/%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/" style="font-size: 1.1em; color: #999">阅读笔记</a> <a href="/tags/%E9%9F%B3%E4%B9%90/" style="font-size: 1.23em; color: #999ea6">音乐</a> <a href="/tags/%E9%A1%B9%E7%9B%AE/" style="font-size: 1.23em; color: #999ea6">项目</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
    <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/02/"><span class="card-archive-list-date">二月 2022</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/12/"><span class="card-archive-list-date">十二月 2021</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/11/"><span class="card-archive-list-date">十一月 2021</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/10/"><span class="card-archive-list-date">十月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/09/"><span class="card-archive-list-date">九月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/05/"><span class="card-archive-list-date">五月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/03/"><span class="card-archive-list-date">三月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/02/"><span class="card-archive-list-date">二月 2021</span><span class="card-archive-list-count">4</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">17</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2021-01-31T16:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">27k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2022-03-17T12:19:06.880Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2022 By HK560</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text">Great ideals but through selfless struggle and sacrifice to achieve.</div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">简</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><div class="search-dialog__title" id="local-search-title">本地搜索</div><div id="local-input-panel"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div></div><hr/><div id="local-search-results"></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script>function panguFn () {
  if (typeof pangu === 'object') pangu.autoSpacingPage()
  else {
    getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js')
      .then(() => {
        pangu.autoSpacingPage()
      })
  }
}

function panguInit () {
  if (false){
    GLOBAL_CONFIG_SITE.isPost && panguFn()
  } else {
    panguFn()
  }
}

document.addEventListener('DOMContentLoaded', panguInit)</script><script src="/js/search/local-search.js"></script><script>var preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',preloader.endLoading())</script><div class="js-pjax"><script>function subtitleType () {
  if (true) { 
    var typed = new Typed("#subtitle", {
      strings: "與光同塵".split(","),
      startDelay: 300,
      typeSpeed: 150,
      loop: false,
      backSpeed: 50
    })
  } else {
    document.getElementById("subtitle").innerHTML = '與光同塵'
  }
}

if (true) {
  if (typeof Typed === 'function') {
    subtitleType()
  } else {
    getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
  }
} else {
  subtitleType()
}</script></div><script defer="defer" id="fluttering_ribbon" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js"></script><script id="canvas_nest" defer="defer" color="255,255,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = false;
POWERMODE.mobile = true;
document.body.addEventListener('input', POWERMODE);
</script><script id="click-show-text" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-show-text.min.js" data-mobile="false" data-text="HK560,elbadaernU" data-fontsize="15px" data-random="true" async="async"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script><script src="https://cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js"></script><script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script><script>let pjaxSelectors = [
  'title',
  '#config-diff',
  '#body-wrap',
  '#rightside-config-hide',
  '#rightside-config-show',
  '.js-pjax'
]

if (false) {
  pjaxSelectors.unshift('meta[property="og:image"]', 'meta[property="og:title"]', 'meta[property="og:url"]')
}

var pjax = new Pjax({
  elements: 'a:not([target="_blank"])',
  selectors: pjaxSelectors,
  cacheBust: false,
  analytics: false,
  scrollRestoration: false
})

document.addEventListener('pjax:send', function () {

  // removeEventListener scroll 
  window.removeEventListener('scroll', window.tocScrollFn)
  window.removeEventListener('scroll', scrollCollect)

  typeof preloader === 'object' && preloader.initLoading()
  
  if (window.aplayers) {
    for (let i = 0; i < window.aplayers.length; i++) {
      if (!window.aplayers[i].options.fixed) {
        window.aplayers[i].destroy()
      }
    }
  }

  typeof typed === 'object' && typed.destroy()

  //reset readmode
  const $bodyClassList = document.body.classList
  $bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')

})

document.addEventListener('pjax:complete', function () {
  window.refreshFn()

  document.querySelectorAll('script[data-pjax]').forEach(item => {
    const newScript = document.createElement('script')
    const content = item.text || item.textContent || item.innerHTML || ""
    Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
    newScript.appendChild(document.createTextNode(content))
    item.parentNode.replaceChild(newScript, item)
  })

  GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()

  typeof chatBtnFn === 'function' && chatBtnFn()
  typeof panguInit === 'function' && panguInit()

  // google analytics
  typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname});

  // baidu analytics
  typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);

  typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()

  // Analytics
  if (false) {
    MtaH5.pgv()
  }

  // prismjs
  typeof Prism === 'object' && Prism.highlightAll()

  typeof preloader === 'object' && preloader.endLoading()
})

document.addEventListener('pjax:error', (e) => {
  if (e.request.status === 404) {
    pjax.loadUrl('/404.html')
  }
})</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>